home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / documents / RFC / rfc1582.txt < prev    next >
Text File  |  1994-08-01  |  63KB  |  1,628 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                           G. Meyer
  8. Request for Comments: 1582                                Spider Systems
  9. Category: Standards Track                                  February 1994
  10.  
  11.  
  12.               Extensions to RIP to Support Demand Circuits
  13.  
  14. Status of this Memo
  15.  
  16.    This document specifies an Internet standards track protocol for the
  17.    Internet community, and requests discussion and suggestions for
  18.    improvements.  Please refer to the current edition of the "Internet
  19.    Official Protocol Standards" (STD 1) for the standardization state
  20.    and status of this protocol.  Distribution of this memo is unlimited.
  21.  
  22. Abstract
  23.  
  24.    Running routing protocols on connection oriented Public Data
  25.    Networks, for example X.25 packet switched networks or ISDN, can be
  26.    expensive if the standard form of periodic broadcasting of routing
  27.    information is adhered to.  The high cost arises because a connection
  28.    has to all practical intents and purposes be kept open to every
  29.    destination to which routing information is to be sent, whether or
  30.    not it is being used to carry user data.
  31.  
  32.    Routing information may also fail to be propagated if the number of
  33.    destinations to which the routing information is to be sent exceeds
  34.    the number of channels available to the router on the Wide Area
  35.    Network (WAN).
  36.  
  37.    This memo defines a generalized modification which can be applied to
  38.    Bellman-Ford (or distance vector) algorithm information broadcasting
  39.    protocols, for example IP RIP, Netware RIP or Netware SAP, which
  40.    overcomes the limitations of the traditional methods described above.
  41.  
  42.    The routing protocols support a purely triggered update mechanism on
  43.    demand circuits on WANs.  The protocols run UNMODIFIED on LANs or
  44.    fixed point-to-point links.
  45.  
  46.    Routing information is sent on the WAN when the routing database is
  47.    modified by new routing information received from another interface.
  48.    When this happens a (triggered) update is sent to a list of
  49.    destinations on other WAN interfaces.  Because routing protocols are
  50.    datagram based they are not guaranteed to be received by the peer
  51.    router on the WAN.  An acknowledgement and retransmission mechanism
  52.    is provided to ensure that routing updates are received.
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Meyer                                                           [Page 1]
  59.  
  60. RFC 1582                       Demand RIP                  February 1994
  61.  
  62.  
  63.    The WAN circuit manager advises the routing applications on the
  64.    reachability and non-reachability of destinations on the WAN.
  65.  
  66. Acknowledgements
  67.  
  68.    I would like to thank colleagues at Spider, in particular Richard
  69.    Edmonstone, Tom Daniel and Alam Turland, Yakov Rekhter (IBM), Martha
  70.    Steenstrup (BBN), and members of the RIP-2 working group of the IETF
  71.    for stimulating discussions and comments which helped to clarify this
  72.    memo.
  73.  
  74. Conventions
  75.  
  76.    The following language conventions are used in the items of
  77.    specification in this document:
  78.  
  79.       o  MUST -- the item is an absolute requirement of the specification.
  80.          MUST is only used where it is actually required for interoperation,
  81.          not to try to impose a particular method on implementors
  82.          where not required for interoperability.
  83.  
  84.       o  SHOULD -- the item should be followed for all but exceptional cir-
  85.          cumstances.
  86.  
  87.       o  MAY or optional -- the item is truly optional and may be followed
  88.          or ignored according to the needs of the implementor.
  89.  
  90.    The words "should" and "may" are also used, in lower case, in their
  91.    more ordinary senses.
  92.  
  93. Table of Contents
  94.  
  95.       1. Introduction ...........................................  3
  96.       2. Running a routing Protocol on the WAN ..................  4
  97.           2.1. Overview .........................................  4
  98.           2.2. Presumption of Reachability ......................  6
  99.           2.3. WAN Router list ..................................  7
  100.           2.4. Triggered Updates and Unreliable Delivery ........  8
  101.           2.5. Guaranteeing delivery of Routing Updates .........  8
  102.           2.6. The Routing Database .............................  9
  103.           2.7. New Packet Types ................................. 10
  104.           2.8. Fragmentation .................................... 12
  105.           2.9. Preventing Queue Overload ........................ 13
  106.       3. IP Routing Information Protocol Version 1 .............. 13
  107.       4. IP Routing Information Protocol Version 2 .............. 16
  108.       5. Netware Routing Information Protocol ................... 17
  109.       6. Netware Service Advertising Protocol ................... 20
  110.       7. Timers ................................................. 24
  111.  
  112.  
  113.  
  114. Meyer                                                           [Page 2]
  115.  
  116. RFC 1582                       Demand RIP                  February 1994
  117.  
  118.  
  119.           7.1. Database Timer ................................... 24
  120.           7.2. Retransmission Timer ............................. 25
  121.           7.3. Reassembly Timer ................................. 26
  122.       8. Implementation Considerations ...........................27
  123.       9. Security Considerations ................................ 27
  124.      10. References ............................................. 28
  125.      11. Author's Address ....................................... 29
  126.  
  127. 1. Introduction
  128.  
  129.    Routers are used on connection oriented networks, such as X.25 packet
  130.    switched networks and ISDN networks, to allow potential connectivity
  131.    to a large number of remote destinations.  Circuits on the Wide Area
  132.    Network (WAN) are established on demand and are relinquished when the
  133.    traffic subsides.  Depending on the application, the connection
  134.    between any two sites for user data might actually be short and
  135.    relatively infrequent.
  136.  
  137.    Practical experience of routing shows that periodic 'broadcasting' of
  138.    routing updates on the WAN is unsatisfactory on several counts:
  139.  
  140.    o  Running a routing protocol like RIP is expensive if the standard
  141.       form of transmitting routing information to every next hop router
  142.       every 30 seconds is adhered to.  The more routers there are
  143.       wishing to exchange information the worse the problem.  If there
  144.       are N routers on the WAN, N * (N - 1) routing updates are sent over
  145.       N * (N - 1)/2 connections every broadcast period.
  146.  
  147.       The expense arises because a circuit has to be kept open to each
  148.       destination to which routing information is to be sent.  Routing
  149.       updates are sufficiently frequent that little benefit is obtainable
  150.       on most networks by attempting to set up a call purely for
  151.       the duration of the routing update. (There are often minimum call
  152.       charges, or there is a charge to set up a call irrespective of
  153.       what data is sent.)
  154.  
  155.       The option of reducing the 'broadcast' frequency, while reducing
  156.       the cost, would make the system less responsive.
  157.  
  158.    o  The number of networks to be connected (N) on the WAN can easily
  159.       exceed the number of simultaneous calls (M) which the interface
  160.       can support.  If this happens the routing 'broadcast' will only
  161.       reach M next hop routers, and (N - M) next hop routers will not
  162.       receive the routing update.
  163.  
  164.       A basic rate ISDN interface can support 2 simultaneous calls, and
  165.       even the number of logical channels most users subscribe to on an
  166.       X.25 network is not large.  There is no fundamental reason why
  167.  
  168.  
  169.  
  170. Meyer                                                           [Page 3]
  171.  
  172. RFC 1582                       Demand RIP                  February 1994
  173.  
  174.  
  175.       routing protocols should restrict the user to routing between so
  176.       few sites.
  177.  
  178.    o  Since there is no broadcast facility on the WAN, 'broadcasting' of
  179.       routing information actually consists of sending the updates
  180.       separately to all known locations.  This means that N routing
  181.       updates are queued for transmission on the WAN link (in addition
  182.       to any data which might be queued).
  183.  
  184.       Routers take a pragmatic view on queuing datagrams for the WAN.
  185.       If the queue length gets too long, so that datagrams at the end of
  186.       the queue would take too long be transmitted in a reasonable time
  187.       (say 1 to 2 seconds) the router may start discarding them.  On an
  188.       X.25 network, with slow line speeds (perhaps 9600 baud), it may
  189.       not take too many routing updates to fulfill this condition if the
  190.       link is also actively being used to carry user data.
  191.  
  192.    This memo addresses all the above problems.
  193.  
  194.    The approach taken is to modify the routing protocols so as to send
  195.    information on the WAN only when there has been an update to the
  196.    routing database OR a change in the reachability of a next hop router
  197.    is indicated by the task which manages connections on the WAN.
  198.  
  199.    Because datagrams are not guaranteed to get through on all WAN media,
  200.    an acknowledgement and retransmission system is required to provide
  201.    reliability.
  202.  
  203.    This memo describes the modifications required for Bellman-Ford (or
  204.    distance vector) algorithm information broadcasting protocols, such
  205.    as IP RIP [1,2] or Netware RIP and SAP [3] on the WAN.  The protocols
  206.    run unmodified on Local Area Networks (LANs) or fixed point-to-point
  207.    links, and so interoperate transparently with implementations
  208.    adhering to the original specifications.
  209.  
  210. 2. Running Routing Protocols on the WAN
  211.  
  212. 2.1 Overview
  213.  
  214.    Multiprotocol routers are used on connection oriented Wide Area
  215.    Networks (WANs), such as X.25 packet switched networks and ISDN
  216.    networks, to interconnect LANs.  By using the multiplexing properties
  217.    of the underlying WAN technology, several LANs can be interconnected
  218.    simultaneously through a single physical interface on the router.
  219.  
  220.    A circuit manager provides an interface between the connectionless
  221.    network layers (IP, IPX, CLNP etc) and the connection oriented WAN
  222.    (X.25 or ISDN).  Figure 1 shows a schematic representative stack
  223.  
  224.  
  225.  
  226. Meyer                                                           [Page 4]
  227.  
  228. RFC 1582                       Demand RIP                  February 1994
  229.  
  230.  
  231.    showing the relationship between routing protocols, the network
  232.    layers, the circuit manager and the connection oriented WAN.
  233.  
  234.              --------------           ---------  ---------
  235.              |    RIP     |           |  RIP  |  |  SAP  |
  236.              --------------           ---------  ---------
  237.                    |                      |          |
  238.              --------------               |          |
  239.              |    UDP     |               |          |
  240.              --------------               |          |
  241.                    |                      |          |
  242.              --------------             ----------------
  243.              |    IP      |             |     IPX      |
  244.              --------------             ----------------
  245.                    |                           |
  246.              -------------------------------------------
  247.              |             Circuit Manager             |
  248.              -------------------------------------------
  249.                               ||||||||||
  250.                               ||||||||||
  251.                       ---------------------------
  252.                       |   Connection Oriented   |
  253.                       |        WAN stack        |
  254.                       ---------------------------
  255.  
  256.      A WAN circuit manager will support a variety of network layer
  257.      protocols, on its upper interface.  On its lower interface, it
  258.      may support one or more subnetworks.  A subnetwork may support a
  259.      number of Virtual Circuits.
  260.  
  261.  
  262.             Figure 1.   Representative Multiprotocol Router stack
  263.  
  264.    The router has a translation table which relates the network layer
  265.    address of the next hop router to the physical address used to
  266.    establish a Virtual Circuit (VC) to it.  Datagrams may be
  267.    encapsulated in a header to distinguish the network layer protocol
  268.    [5].
  269.  
  270.    The circuit manager takes datagrams from the connectionless network
  271.    layer protocols and (if one is not currently available) opens a VC to
  272.    the next hop router.  A VC can carry all traffic between two end-
  273.    point routers for a given network layer protocol (or with appropriate
  274.    encapsulation all network layer protocols).  An idle timer is used to
  275.    close the VC when the datagrams stop arriving at the circuit manager.
  276.  
  277.    Running routing protocols on the WAN has traditionally consisted of
  278.    making small modifications to the methods used on LANs.  Where
  279.  
  280.  
  281.  
  282. Meyer                                                           [Page 5]
  283.  
  284. RFC 1582                       Demand RIP                  February 1994
  285.  
  286.  
  287.    routing information would be broadcast periodically on a LAN
  288.    interface, it is converted to a series of periodic updates sent to a
  289.    list of addresses on the WAN.
  290.  
  291.    This memo targets two areas:
  292.  
  293.    o  Eliminating the overkill inherent in periodic transmission of
  294.       routing updates.
  295.  
  296.    o  Overcoming the bandwidth limitations on the WAN: the number of
  297.       simultaneous VCs to next hop routers and restricted data
  298.       throughput which the WAN link can support.
  299.  
  300.    The first of these is overcome by transmitting routing updates
  301.    (called routing responses) only when required:
  302.  
  303.    o  Firstly, when a specific request for a routing update has been
  304.       received.
  305.  
  306.    o  Secondly, when the routing database is modified by new
  307.       information from another interface.
  308.  
  309.       Update information received in this way is not normally
  310.       propagated on other interfaces immediately, but is delayed for a
  311.       few seconds to allow information from several updates to be
  312.       grouped.
  313.  
  314.    o  Thirdly, when the circuit manager indicates that a destination
  315.       has changed from an unreachable (circuit down) to a reachable
  316.       (circuit up) state.
  317.  
  318.    Because of the inherent unreliability of a datagram based system,
  319.    both routing requests and routing responses require acknowledgement,
  320.    and retransmission in the event of NOT receiving an acknowledgement.
  321.  
  322.    To overcome the bandwidth limitations the routing application can
  323.    perform a form of self-imposed flow control, to spread routing
  324.    updates out over a period of time.
  325.  
  326. 2.2 Presumption of Reachability
  327.  
  328.    If a routing update is received from a next hop router on the WAN,
  329.    entries in the update are thereafter always considered to be
  330.    reachable, unless proven otherwise:
  331.  
  332.    o  If in the normal course of routing datagrams, the circuit manager
  333.       fails to establish a connection to the next hop router, it
  334.       notifies the routing application that the next hop router is not
  335.  
  336.  
  337.  
  338. Meyer                                                           [Page 6]
  339.  
  340. RFC 1582                       Demand RIP                  February 1994
  341.  
  342.  
  343.       reachable through an internal circuit down message.
  344.  
  345.       The routing application then goes through a process of timing out
  346.       database entries to make them unreachable in the routing sense.
  347.  
  348.    o  If the circuit manager is subsequently able to establish a
  349.       connec tion to the next hop router, it will notify the routing
  350.       applica tion that the next hop router is reachable through an
  351.       internal circuit up message.
  352.  
  353.       The routing application will then exchange messages with the next
  354.       hop router so as to re-prime their respective routing databases
  355.       with up-to-date information.
  356.  
  357.    Handling of circuit up and circuit down messages requires that the
  358.    circuit manager takes responsibility for establishing (or
  359.    reestablishing) the connection in the event of a next hop router
  360.    becoming unreachable.  A description of the processes the circuit
  361.    manager adopts to perform this task is outside the scope of this
  362.    memo.
  363.  
  364. 2.3 WAN Router list
  365.  
  366.    The routing task MAY be provided with a list of routers to send
  367.    routing updates to on the WAN.  It will comprise of the logical
  368.    addresses of next hop routers for which the router has a logical to
  369.    physical address mapping.  Entries in the list SHOULD be categorized
  370.    (on a per-peer basis) as follows:
  371.  
  372.    o  Running the standard routing protocol, namely transmitting
  373.       updates periodically with the packet formats used in LAN
  374.       broadcasts.
  375.  
  376.       This option is supported to allow interoperability with existing
  377.       routing implementations, and might also be appropriate if some
  378.       of the destinations are using Permanent Virtual Circuits (PVCs)
  379.       rather than SVCs.
  380.  
  381.    o  Running the triggered update routing protocol proposed in this
  382.       memo.
  383.  
  384.    Omitting an address from both of these categories is equivalent to
  385.    not running the routing protocols.
  386.  
  387.    If routing packets arrive from a destination not supporting the
  388.    appropriate variant they MUST be discarded.
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Meyer                                                           [Page 7]
  395.  
  396. RFC 1582                       Demand RIP                  February 1994
  397.  
  398.  
  399. 2.4 Triggered Updates and Unreliable Delivery
  400.  
  401.    If triggered update information is sent to next hop routers on the
  402.    WAN only once it can fail to arrive for one of the following reasons:
  403.  
  404.    o  A free VC resource might not be available, because of a
  405.       restricted number of X.25 logical channels or ISDN B-channels.
  406.  
  407.    o  The transmit queue might be full - requiring the datagram to be
  408.       discarded.
  409.  
  410.    o  The VC might be pre-empted (in favour of establishing a VC to
  411.       another next hop router) while the datagram is in a queue,
  412.       resulting in the queue being flushed and the datagram
  413.       discarded.
  414.  
  415.    o  In cases where the method of transport is not guaranteed, for
  416.       example with PPP where there is no acknowledgement and
  417.       retransmission of HDLC frames, a corrupted frame will result in
  418.       the loss of the datagram.
  419.  
  420. 2.5 Guaranteeing delivery of Routing Updates
  421.  
  422.    To guarantee delivery of routing updates on the WAN an
  423.    acknowledgement and retransmission scheme MUST be used:
  424.  
  425.    o  Send a routing update to a next hop router on the WAN.
  426.  
  427.    o  The other router responds with an acknowledgement packet.
  428.  
  429.       The original router receives the acknowledgement.
  430.  
  431.    o  Otherwise the original router retransmits the update until an
  432.       acknowledgement is received.
  433.  
  434.       Retransmission timer values are covered in section 7.
  435.  
  436.       In cases where the routing database is modified before an
  437.       acknowledgement is received a new routing update with an
  438.       updated sequence number is sent out.  If an acknowledgement for
  439.       the old routing update is received it is ignored.
  440.  
  441.    o  A router only updates its routing database when it receives a
  442.       complete update, which may consist of several fragments.  Each
  443.       fragment is individually acknowledged.
  444.  
  445.    The above mechanism caters for cases where the datagram is lost
  446.    because of a frame error or is discarded because of an over-full
  447.  
  448.  
  449.  
  450. Meyer                                                           [Page 8]
  451.  
  452. RFC 1582                       Demand RIP                  February 1994
  453.  
  454.  
  455.    queue.  The routing update and acknowledgement will eventually both
  456.    get through.
  457.  
  458.    In cases where the circuit manager cannot establish a connection, a
  459.    mechanism is provided to allow the circuit manager to inform the
  460.    routing task of the failure to make a connection so that it can
  461.    suppress retransmissions until a circuit becomes available.
  462.  
  463. 2.6 The Routing Database
  464.  
  465.    A requirement of using triggered updates for propagating routing
  466.    information is that NO routing information ever gets LOST or
  467.    DISCARDED.
  468.  
  469.    The routing database MUST adopt one of the following strategies:
  470.  
  471.    o  It must keep ALL alternative routing information it learns from
  472.       any routing updates from the LAN and the WAN, so that if the
  473.       best route disappears an alternative route (if available) can
  474.       replace it as the new best route.
  475.  
  476.    o  If the amount of memory this consumes is problematic the routing
  477.       application must keep SOME alternative routing information - say
  478.       a best route and two alternatives.
  479.  
  480.       If the router ever has to discard routing information about a
  481.       route it should note the fact.  If the routes that have been
  482.       kept disappear because they have become unreachable, the router
  483.       MUST issue a request on all interfaces to try and obtain
  484.       discarded alternatives.
  485.  
  486.       It is recommended that the request is issued BEFORE all routes
  487.       to a destination have been lost.
  488.  
  489.    Entries in the routing database can either be permanent or temporary.
  490.    Entries learned from broadcasts on LANs are temporary. They will
  491.    expire if not periodically refreshed by further broadcasts.
  492.  
  493.    Entries learned from a triggered response on the WAN are 'permanent'.
  494.    They MUST not time out in the normal course of events.  The entries
  495.    state MUST be changed to 'temporary' by the following events:
  496.  
  497.    o  The arrival of a routing update containing the entry set to
  498.       unreachable.
  499.  
  500.       The normal hold down timer MUST be started, after which the
  501.       entry disappears from the routing database.
  502.  
  503.  
  504.  
  505.  
  506. Meyer                                                           [Page 9]
  507.  
  508. RFC 1582                       Demand RIP                  February 1994
  509.  
  510.  
  511.    o  The arrival of a routing update with the entry absent.
  512.  
  513.       If the hold down timer is not already running, the entry MUST be
  514.       set to unreachable and the hold down timer started.
  515.  
  516.    o  A message sent from the circuit manager, to indicate that it
  517.       failed to make a connection in normal running.
  518.  
  519.       The routing table MUST be scanned for all routes via that next
  520.       hop router.  Aging of these routing entries MUST commence.  If
  521.       the aging timer expires the entry MUST be set to unreachable and
  522.       the hold down timer started.  If the hold down timer expires the
  523.       entry disappears from the routing database.
  524.  
  525.    o  If the interface goes down, the circuit manager should indicate
  526.       that all circuits on that interface have gone down.
  527.  
  528.    Database timer values are covered in section 7.
  529.  
  530. 2.7 New Packet Types
  531.  
  532.    To support triggered updates, three new packet types MUST be
  533.    supported:
  534.  
  535.    TRIGGERED REQUEST
  536.  
  537.              A request to the responding system to send all
  538.              appropriate elements in its routing database.
  539.  
  540.              A triggered request is retransmitted at periodic
  541.              intervals until a triggered response is received.
  542.  
  543.              Routing requests are transmitted in the following
  544.              circumstances:
  545.  
  546.              o  Firstly when the router is powered on.
  547.  
  548.              o  Secondly when the circuit manager indicates a
  549.                 destination has been in an unreachable (circuit down)
  550.                 state for an extended period and changes to a
  551.                 reachable (circuit up) state.
  552.  
  553.              o  Thirdly in the event of all routing update fragments
  554.                 failing to arrive within a set period.
  555.  
  556.              o  It may also send triggered requests at other times to
  557.                 compensate for discarding non-optimal routing
  558.                 information.
  559.  
  560.  
  561.  
  562. Meyer                                                          [Page 10]
  563.  
  564. RFC 1582                       Demand RIP                  February 1994
  565.  
  566.  
  567.    TRIGGERED RESPONSE
  568.  
  569.              A message containing all appropriate elements of the
  570.              routing database.  An appropriate element is an entry
  571.              NOT learned from the interface to which the routing
  572.              information is being sent out.  This is known as "split
  573.              horizon".
  574.  
  575.              Stability is improved by adding "poisoned reverse" on
  576.              routes learned from a destination.  This consists of also
  577.              including some routes learned from a destination in
  578.              routing updates sent back to that destination, but
  579.              setting the routes as unreachable.  A route is only
  580.              poisoned if it is the best route (rather than an inferior
  581.              alternative route) in the database.
  582.  
  583.              A triggered response message may be sent in response to a
  584.              triggered request, or it may be an update message issued
  585.              because of a change in the routing database.
  586.  
  587.              A triggered response message MUST be sent in response to
  588.              a triggered request message even if there are no routes
  589.              to propagate.  This would be the case for a host which
  590.              had a WAN interface only, but which wished to run the
  591.              triggered update protocol.
  592.  
  593.              A triggered response is retransmitted at periodic
  594.              intervals until a triggered acknowledgement is received.
  595.  
  596.    TRIGGERED ACKNOWLEDGEMENT
  597.  
  598.              A message sent in response to every triggered response
  599.              packet received.
  600.  
  601.    Triggered response and triggered acknowledgement packets MUST contain
  602.    additional fields for a sequence number, fragment number and number
  603.    of fragments.
  604.  
  605.    If a triggered request or response is not acknowledged after 10
  606.    retransmissions, routes to the destination should be marked as
  607.    unreachable for the duration of a hold down timer before being
  608.    deleted.
  609.  
  610.    The destination should then be polled at a lower frequency using
  611.    triggered request packets.  When a triggered response is received,
  612.    the router should prime the next hop router my sending its routing
  613.    database through triggered response packets.
  614.  
  615.  
  616.  
  617.  
  618. Meyer                                                          [Page 11]
  619.  
  620. RFC 1582                       Demand RIP                  February 1994
  621.  
  622.  
  623.    Strictly speaking polling should occur indefinitely to guarantee
  624.    database integrity.  However the administrator MAY wish the router to
  625.    cease polling after a few attempts believing that the lack of
  626.    response is due to a mis-configuration of the next hop router.  The
  627.    destination should be marked as NOT supporting the mechanism and no
  628.    further routing messages should be sent to that destination.
  629.  
  630.    Before marking the destination as not supporting the mechanism, at
  631.    least 5 triggered request polls (without acknowledgement) should be
  632.    sent.
  633.  
  634.    If a destination marked as not supporting the mechanism, subsequently
  635.    sends a valid 'triggered' message, the destination should be marked
  636.    as supporting the mechanism once more (to allow for the next hop
  637.    router's configuration being changed).  It should be sent a triggered
  638.    request and a triggered response to obtain and propagate up-to-date
  639.    routing information.
  640.  
  641. 2.8 Fragmentation
  642.  
  643.    If a routing update is sufficiently large, the information MUST be
  644.    fragmented over several triggered response packets:
  645.  
  646.    o  Each fragment MUST be individually acknowledged with a triggered
  647.       acknowledgement packet.
  648.  
  649.       The sender of the routing update MUST periodically retransmit
  650.       fragments which have not been acknowledged (or until the
  651.       destination is marked as not supporting the mechanism).
  652.  
  653.    o  A router receiving fragments MUST re-assemble them before
  654.       updating its routing database.
  655.  
  656.    o  If all fragments are not received within four times the
  657.       retransmit period, they MUST be discarded.
  658.  
  659.       A triggered request packet MUST then be sent to the originator
  660.       of the routing update.
  661.  
  662.       On receiving the triggered request packet, the originator of the
  663.       routing update MUST retransmit ALL fragments.
  664.  
  665.    o  If a fragment with an updated sequence number is received, ALL
  666.       fragments with the earlier sequence number MUST be discarded.
  667.  
  668.       An updated sequence number is defined as any sequence number
  669.       that is different.  There is no concept of the value of the
  670.       sequence number conveying its age.
  671.  
  672.  
  673.  
  674. Meyer                                                          [Page 12]
  675.  
  676. RFC 1582                       Demand RIP                  February 1994
  677.  
  678.  
  679.    Fragmentation timer values are covered in section 7.
  680.  
  681. 2.9 Preventing Queue Overload
  682.  
  683.    In order to prevent too many routing messages being queued at a WAN
  684.    interface, the routing task MAY operate a scheme whereby
  685.    'broadcasting' of a triggered request or triggered response to a WAN
  686.    interface is staggered.  All routing requests or routing responses
  687.    are not sent to ALL next hop routers on the interface in a single
  688.    batch:
  689.  
  690.    o  The routing task should limit the number of outstanding triggered
  691.       request messages for which a triggered response has not been
  692.       received.
  693.  
  694.    o  The routing task should limit the number of outstanding triggered
  695.       response messages for which a triggered acknowledgement has not
  696.       been received.
  697.  
  698.    As outstanding messages are appropriately acknowledged, further
  699.    messages can be sent out to other next hop routers, until all next
  700.    hop routers have been sent the message and have acknowledged it.
  701.  
  702.    The maximum number of outstanding messages transmitted without
  703.    acknowledgement is a function of the link speed and the number of
  704.    other routing protocols operating the triggered update mechanism.
  705.  
  706.    Messages should always be acknowledged immediately (even if it causes
  707.    the limit to be exceeded), since a connection is almost certainly
  708.    available.  This has the potential benefit of allowing the VC to
  709.    close sooner (on its idle timer).
  710.  
  711.    Sending all triggered request fragments to a destination at once is
  712.    also beneficial.
  713.  
  714. 3. IP Routing Information Protocol Version 1
  715.  
  716.    This section should be read in conjunction with reference [1].
  717.  
  718.    IP RIP is a UDP-based protocol which generally sends and receives
  719.    datagrams on UDP port number 520.
  720.  
  721.    To support the mechanism outlined in this proposal the packet format
  722.    for RIP version 1 [1] is modified as shown in Figure 2.
  723.  
  724.    Every Routing Information Protocol datagram contains the following:
  725.  
  726.  
  727.  
  728.  
  729.  
  730. Meyer                                                          [Page 13]
  731.  
  732. RFC 1582                       Demand RIP                  February 1994
  733.  
  734.  
  735.    COMMAND   Commands supported in RIP Version 1 are: request (1),
  736.              response (2), traceon (3), traceoff (4), SUN reserved (5).
  737.              The fields sequence number, fragment number and number of
  738.              fragments MUST NOT be included in packets with these
  739.              command values.
  740.  
  741.              The following new commands (with values in brackets) are
  742.              required:
  743.  
  744.        TRIGGERED REQUEST (6)
  745.  
  746.                  A request for the responding system to send all of its
  747.                  routing database.
  748.  
  749.                  Only the first 4 octets of the packet format shown in
  750.                  figure 2 are sent, since all routing information is
  751.                  implied by this request type.
  752.  
  753.        TRIGGERED RESPONSE (7)
  754.  
  755.                  A message containing all of the sender's routing
  756.                  database, excluding those entries learned from the
  757.                  interface to which the routing information is being
  758.                  sent.
  759.  
  760.                  This message may be sent in response to a triggered
  761.                  request, or it may be an update message resulting
  762.                  from a change in the routing database.
  763.  
  764.                  A triggered response message MUST be sent in response
  765.                  to a triggered request message even if there are no
  766.                  routes to propagate.  This would be the case for a
  767.                  host which had a WAN interface only, but which wished
  768.                  to run the triggered update protocol.
  769.  
  770.      0                   1                   2                   3 3
  771.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  772.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  773.      | command (1)   | version (1)   |      must be zero (2)         |
  774.      +---------------+---------------+-------------------------------+
  775.  
  776.         The following new fields are inserted for some commands
  777.  
  778.      0                   1                   2                   3 3
  779.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  780.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  781.      |    sequence number (2)        | fragment (1)  |no of frags (1)|
  782.      +-------------------------------+-------------------------------+
  783.  
  784.  
  785.  
  786. Meyer                                                          [Page 14]
  787.  
  788. RFC 1582                       Demand RIP                  February 1994
  789.  
  790.  
  791.           Followed by up to 25 routing entries (each 20 octets)
  792.  
  793.      0                   1                   2                   3 3
  794.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  795.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  796.      | address family identifier (2) |      must be zero (2)         |
  797.      +-------------------------------+-------------------------------+
  798.      |                         IP address (4)                        |
  799.      +---------------------------------------------------------------+
  800.      |                        must be zero (4)                       |
  801.      +---------------------------------------------------------------+
  802.      |                        must be zero (4)                       |
  803.      +---------------------------------------------------------------+
  804.      |                          metric (4)                           |
  805.      +---------------------------------------------------------------+
  806.                                      .
  807.                                      .
  808.  
  809.      The format of an IP RIP datagram in octets, with each tick mark
  810.      representing one bit.    All fields are in network order.
  811.  
  812.      The four octets: sequence number (2), fragment number (1) and
  813.      number of fragments (1) are not present in the original RIP
  814.      specification.  They are only present if command takes the
  815.      values 7 or 8.
  816.  
  817.  
  818.           Figure 2.   IP Routing Information Protocol packet format
  819.  
  820.  
  821.        TRIGGERED ACKNOWLEDGEMENT (8)
  822.  
  823.                  A message sent in response to every triggered response
  824.                  packet received.
  825.  
  826.                  Only the first 8 octets of the packet format shown in
  827.                  figure 2 are sent.
  828.  
  829.    VERSION   In this instance Version 1.
  830.  
  831.    SEQUENCE NUMBER
  832.  
  833.              This is a new field inserted if command takes the values 7
  834.              or 8.
  835.  
  836.              The sequence number MUST be incremented every time updated
  837.              information is sent out on a WAN.  The sequence number
  838.              wraps round at 65535.
  839.  
  840.  
  841.  
  842. Meyer                                                          [Page 15]
  843.  
  844. RFC 1582                       Demand RIP                  February 1994
  845.  
  846.  
  847.              When a triggered acknowledgement is sent the sequence
  848.              number is set to the same value as the triggered response
  849.              packet being acknowledged.
  850.  
  851.              The sequence number MUST be identical over fragments.  If a
  852.              fragment is retransmitted the sequence number MUST not
  853.              change.
  854.  
  855.    FRAGMENT NUMBER
  856.  
  857.              The fragment number is one for the first fragment of a
  858.              routing update, and is incremented for each subsequent
  859.              fragment.  A fragment can contain up to 25 routing entries.
  860.  
  861.              When a triggered acknowledgement is sent the fragment
  862.              number is set to the same value as the triggered response
  863.              packet being acknowledged.
  864.  
  865.    NUMBER OF FRAGMENTS
  866.  
  867.              In a triggered response packet this indicates the number of
  868.              packets required to complete the routing update.
  869.  
  870.              This field has no relevance for triggered acknowledgement
  871.              packets so should be set to zero.
  872.  
  873.    For triggered response packets the rest of the datagram contains a
  874.    list of destinations, with information about each.  Each entry in
  875.    this list contains the address family identifier (2 for IP), a
  876.    destination network or host, and the metric for it.  The packet
  877.    format is intended to allow RIP to carry routing information for
  878.    several different protocols, identifiable by the family identifier.
  879.  
  880.    The IP address is the usual Internet address, stored as 4 octets in
  881.    network order.  The metric field contains a value between 1 and 15
  882.    inclusive, specifying the current metric for the destination, or the
  883.    value 16 (representing 'infinity'), which indicates that the
  884.    destination is not reachable.  Each route sent by a router supersedes
  885.    any previous route to the same destination from the same router.
  886.  
  887.    The maximum datagram size is 508 octets, excluding UDP and IP
  888.    headers.
  889.  
  890. 4. IP Routing Information Protocol Version 2
  891.  
  892.    An enhancement to IP RIP to include subnetting has recently become
  893.    available [2].  This section only describes differences from that
  894.    RFC.
  895.  
  896.  
  897.  
  898. Meyer                                                          [Page 16]
  899.  
  900. RFC 1582                       Demand RIP                  February 1994
  901.  
  902.  
  903.    The triggered update mechanism can be supported by including the
  904.    triggered request (6), triggered response (7) and triggered
  905.    acknowledgement (8) commands described in the previous section.
  906.  
  907.    The sequence number, fragment number and number of fragments fields
  908.    are included in triggered response and triggered acknowledgement
  909.    commands.
  910.  
  911.    The triggered request packet should also contain the 4 extra octets
  912.    corresponding to the sequence number, fragment number and number of
  913.    fragments fields - but set to zero.
  914.  
  915.    Because additional security information is included in RIP Version 2
  916.    packets, this MUST be appended to the triggered request and triggered
  917.    acknowledgement packets, as well as being present in the triggered
  918.    response packet.
  919.  
  920.    The version number becomes 2.  Other aspects of packet layout follow
  921.    reference [2].
  922.  
  923. 5. Netware Routing Information Protocol
  924.  
  925.    This section should be read in conjunction with references [3], since
  926.    it only describes differences from the specification.
  927.  
  928.    Netware [3] is the trade name of Novell Research's protocols for
  929.    computer communication which are derived and extended from Xerox
  930.    Network System's (XNS) protocols [4].
  931.  
  932.    Netware supports a mechanism that allows routers on an internetwork
  933.    to exchange routing information using the Routing Information
  934.    Protocol (RIP) which runs over the Internetwork Packet Exchange (IPX)
  935.    protocol using socket number 453h.
  936.  
  937.    Netware RIP and IP RIP share a common heritage, in that they are both
  938.    based on XNS RIP, but there is some divergence, mostly at the packet
  939.    format level to reflect the differing addressing schemes.
  940.  
  941.    The triggered update mechanism can be applied to Netware RIP.  To
  942.    support the mechanism outlined in this proposal the packet format for
  943.    Netware RIP is modified as shown in Figure 3.
  944.  
  945.    Every datagram contains the following:
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954. Meyer                                                          [Page 17]
  955.  
  956. RFC 1582                       Demand RIP                  February 1994
  957.  
  958.  
  959.    RIP OPERATION
  960.  
  961.              Operations supported in standard Netware RIP are: request
  962.              (1) and response (2).
  963.  
  964.              The fields sequence number, fragment number and number of
  965.              fragments MUST NOT be included in packets with these
  966.              operation values.
  967.  
  968.              The following new operations are required (with values
  969.              chosen to be the same as for IP RIP commands):
  970.  
  971.      0                   1         1
  972.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
  973.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  974.      |       operation (2)           |
  975.      +---------------+---------------+
  976.  
  977.         The following new fields are inserted for some operations
  978.  
  979.      0                   1                   2                   3 3
  980.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  981.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  982.      |      sequence number (2)      | fragment (1)  |no of frags (1)|
  983.      +-------------------------------+-------------------------------+
  984.  
  985.            Followed by up to 50 routing entries (each 8 octets)
  986.  
  987.      0                   1                   2                   3 3
  988.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  989.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  990.      |                       network number (4)                      |
  991.      +---------------------------------------------------------------+
  992.      |       number of hops (2)      |      number of ticks (2)      |
  993.      +---------------------------------------------------------------+
  994.                                      .
  995.                                      .
  996.  
  997.      The format of a Netware RIP datagram in octets, with each tick
  998.      mark representing one bit.  All fields are in network order.
  999.  
  1000.      The four octets: sequence number (2), fragment number (1) and
  1001.      number of fragments (1) are not present in the original RIP
  1002.      specification.  They are only present if operation takes the
  1003.      values 7 or 8.
  1004.  
  1005.         Figure 3.   Netware Routing Information Protocol packet format
  1006.  
  1007.  
  1008.  
  1009.  
  1010. Meyer                                                          [Page 18]
  1011.  
  1012. RFC 1582                       Demand RIP                  February 1994
  1013.  
  1014.  
  1015.        TRIGGERED REQUEST (6)
  1016.  
  1017.                  A request for the responding system to send all of its
  1018.                  routing database.
  1019.  
  1020.                  Only the first 2 octets of the packet format shown in
  1021.                  figure 3 are sent, since all routing information is
  1022.                  implied by this request type.
  1023.  
  1024.        TRIGGERED RESPONSE (7)
  1025.  
  1026.                  A message containing all of the sender's routing
  1027.                  database, excluding those entries learned from the
  1028.                  interface to which the routing information is being
  1029.                  sent.
  1030.  
  1031.                  This message may be sent in response to a triggered
  1032.                  request, or it may be an update message resulting
  1033.                  from a change in the routing database.
  1034.  
  1035.                  A triggered response message MUST be sent in response
  1036.                  to a triggered request message even if there are no
  1037.                  routes to propagate.  This would be the case for a
  1038.                  host which had a WAN interface only, but which wished
  1039.                  to run the triggered update protocol.
  1040.  
  1041.        TRIGGERED ACKNOWLEDGEMENT (8)
  1042.  
  1043.                  A message sent in response to every triggered
  1044.                  response packet received.
  1045.  
  1046.                  Only the first 6 octets of the packet format shown in
  1047.                  figure 3 are sent.
  1048.  
  1049.    SEQUENCE NUMBER
  1050.  
  1051.              This is a new field inserted if operation takes the
  1052.              values 7 or 8.
  1053.  
  1054.              The sequence number MUST be incremented every time
  1055.              updated information is sent out on a WAN.  The sequence
  1056.              number wraps round at 65535.
  1057.  
  1058.              When a triggered acknowledgement is sent the sequence
  1059.              number is set to the same value as the triggered response
  1060.              packet being acknowledged.
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. Meyer                                                          [Page 19]
  1067.  
  1068. RFC 1582                       Demand RIP                  February 1994
  1069.  
  1070.  
  1071.              The sequence number MUST be identical over fragments.  If
  1072.              a fragment is retransmitted the sequence number MUST not
  1073.              change.
  1074.  
  1075.    FRAGMENT NUMBER
  1076.  
  1077.              The fragment number is one for the first fragment of a
  1078.              routing update, and is incremented for each subsequent
  1079.              fragment.  A fragment can contain up to 50 routing entries.
  1080.  
  1081.              When a triggered acknowledgement is sent the fragment
  1082.              number is set to the same value as the triggered response
  1083.              packet being acknowledged.
  1084.  
  1085.    NUMBER OF FRAGMENTS
  1086.  
  1087.              In a triggered response packet this indicates the number
  1088.              of packets required to complete the routing update.
  1089.  
  1090.              This field has no relevance for triggered acknowledgement
  1091.              packets so should be set to zero.
  1092.  
  1093.    For triggered response packets the rest of the datagram contains a
  1094.    list of networks, with information about each.  Each entry in this
  1095.    list contains a destination network, and the number of hops and
  1096.    number of ticks for each.
  1097.  
  1098.    The maximum datagram size is 406 octets, excluding the IPX header (a
  1099.    further 30 octets).
  1100.  
  1101. 6. Netware Service Advertising Protocol
  1102.  
  1103.    This section should be read in conjunction with references [3], since
  1104.    it only describes differences from the specification.
  1105.  
  1106.    Netware [3] also supports a mechanism that allows servers on an
  1107.    internetwork to advertise their services by name and type using the
  1108.    Service Advertising Protocol (SAP) which runs over the Internetwork
  1109.    Packet Exchange (IPX) protocol using socket number 452h.
  1110.  
  1111.    SAP operates on similar principals to running RIP.  Routers act as
  1112.    SAP agents, collecting service information from different networks
  1113.    and relay it to interested parties.
  1114.  
  1115.    To support the triggered update mechanism outlined in this proposal
  1116.    the packet format for Netware SAP is modified as shown in Figure 4.
  1117.  
  1118.    Every Service Advertising Protocol datagram contains the following:
  1119.  
  1120.  
  1121.  
  1122. Meyer                                                          [Page 20]
  1123.  
  1124. RFC 1582                       Demand RIP                  February 1994
  1125.  
  1126.  
  1127.    SAP OPERATION
  1128.  
  1129.              Operations supported in standard Netware SAP are: general
  1130.              service query (1), general service response (2), nearest
  1131.              service query (3) and nearest service response (4).
  1132.  
  1133.              The fields sequence number, fragment number and number of
  1134.              fragments MUST NOT be included in packets with these
  1135.              operation values.
  1136.  
  1137.              The following new operations are required:
  1138.  
  1139.        TRIGGERED GENERAL SERVICE QUERY (6)
  1140.  
  1141.                  A request for the responding system to send the
  1142.                  identities of all servers of all types.
  1143.  
  1144.                  Only the first 2 octets of the packet format shown in
  1145.                  figure 4 are sent, since all service types are
  1146.                  implied by this request type.
  1147.  
  1148.      0                   1         1
  1149.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
  1150.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1151.      |       operation (2)           |
  1152.      +---------------+---------------+
  1153.  
  1154.         The following new fields are inserted for some operations
  1155.  
  1156.      0                   1                   2                   3 3
  1157.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1158.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1159.      |      sequence number (2)      | fragment (1)  |no of frags (1)|
  1160.      +-------------------------------+-------------------------------+
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178. Meyer                                                          [Page 21]
  1179.  
  1180. RFC 1582                       Demand RIP                  February 1994
  1181.  
  1182.  
  1183.            Followed by up to 8 service entries (each 66 octets)
  1184.  
  1185.      0                   1                   2                   3 3
  1186.      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1187.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1188.      |                       Service Type (4)                        |
  1189.      +---------------------------------------------------------------+
  1190.      |                       Service Name (48)                       |
  1191.      +                                                               +
  1192.                                   .
  1193.      |                            .                                  |
  1194.      +---------------------------------------------------------------+
  1195.      |                       Network Address (4)                     |
  1196.      +---------------------------------------------------------------+
  1197.      |                        Node Address (6)                       |
  1198.      +                               +-------------------------------+
  1199.      |                               |      Socket Address (2)       |
  1200.      +---------------------------------------------------------------+
  1201.      |       Hops to Server (2)      |
  1202.      +-------------------------------+
  1203.                                      .
  1204.                                      .
  1205.  
  1206.      The format of a Netware SAP datagram in octets, with each tick
  1207.      mark representing one bit.  All fields are in network order.
  1208.  
  1209.      The four octets: sequence number (2), fragment number (1) and
  1210.      number of fragments (1) are not present in the original SAP
  1211.      specification.  They are only present if operation takes the
  1212.      values 7 or 8.
  1213.  
  1214.  
  1215.         Figure 4.   Netware Service Advertising Protocol packet format
  1216.  
  1217.  
  1218.        TRIGGERED GENERAL SERVICE RESPONSE (7)
  1219.  
  1220.                  A message containing all of the sender's services
  1221.                  table, excluding those entries learned from the
  1222.                  interface to which the service advertising
  1223.                  information is being sent out.
  1224.  
  1225.                  This message may be sent in response to a triggered
  1226.                  general service query, or it may be an update message
  1227.                  resulting from a change in the service advertising
  1228.                  database.
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234. Meyer                                                          [Page 22]
  1235.  
  1236. RFC 1582                       Demand RIP                  February 1994
  1237.  
  1238.  
  1239.                  A triggered general service response message MUST be
  1240.                  sent in response to a triggered general request
  1241.                  message even if there are no services to advertise.
  1242.                  This would be the case for a router with a LAN
  1243.                  network which had work stations but no servers on it.
  1244.  
  1245.        TRIGGERED GENERAL SERVICE ACKNOWLEDGEMENT (8)
  1246.  
  1247.                  A message sent in response to every triggered general
  1248.                  service response packet received.
  1249.  
  1250.                  Only the first 6 octets of the packet format shown in
  1251.                  figure 4 are sent.
  1252.  
  1253.    SEQUENCE NUMBER
  1254.  
  1255.              This is a new field inserted if operation takes the values
  1256.              7 or 8.
  1257.  
  1258.              The sequence number MUST be incremented every time updated
  1259.              information is sent out on a WAN.  The sequence number
  1260.              wraps round at 65535.
  1261.  
  1262.              When a triggered general service acknowledgement is sent
  1263.              the sequence number is set to the same value as the
  1264.              triggered general service response packet being
  1265.              acknowledged.
  1266.  
  1267.              The sequence number MUST be identical over fragments.  If
  1268.              a fragment is retransmitted the sequence number MUST not
  1269.              change.
  1270.  
  1271.    FRAGMENT NUMBER
  1272.  
  1273.              The fragment number is one for the first fragment of a
  1274.              triggered general service response update, and is
  1275.              incremented for each subsequent fragment.  A fragment can
  1276.              contain up to 8 service entries.
  1277.  
  1278.              When a triggered general service acknowledgement is sent,
  1279.              the fragment number is set to the same value as the
  1280.              triggered general service response packet being
  1281.              acknowledged.
  1282.  
  1283.    NUMBER OF FRAGMENTS
  1284.  
  1285.              In a triggered response packet this indicates the number of
  1286.              packets required to complete the service update.
  1287.  
  1288.  
  1289.  
  1290. Meyer                                                          [Page 23]
  1291.  
  1292. RFC 1582                       Demand RIP                  February 1994
  1293.  
  1294.  
  1295.              This field has no relevance for triggered acknowledgement
  1296.              packets so should be set to zero.
  1297.  
  1298.    For triggered general service response packets the rest of the
  1299.    datagram contains a list of services, with information about each.
  1300.    Each entry in this list contains the service type, service name, full
  1301.    address (network, node and socket), and the number of hops to the
  1302.    server.
  1303.  
  1304.    The maximum datagram size is 534 octets, excluding the IPX header (a
  1305.    further 30 octets).
  1306.  
  1307. 7. Timers
  1308.  
  1309.    A number of timers are supported to handle the triggered update
  1310.    mechanism:
  1311.  
  1312.    o  Database timers.
  1313.  
  1314.    o  Retransmission timer.
  1315.  
  1316.    o  Reassembly timer.
  1317.  
  1318.    In this section appropriate timer values for IP RIP are suggested.
  1319.  
  1320.    For other routing protocols, only the database timer should need to
  1321.    take different values.  The database timer values are chosen to match
  1322.    equivalent timer operation for using the protocol on a LAN.  The
  1323.    behaviour of a routing entry when a timer is running becomes
  1324.    indistinguishable from a routing entry learned from a broadcast
  1325.    update.
  1326.  
  1327.    Implementations MAY make timer values configurable - and hence
  1328.    different from the values suggested here - but interoperability
  1329.    requires that all timers on a sub-network should be the same in all
  1330.    routers.
  1331.  
  1332. 7.1 Database Timers
  1333.  
  1334.    Routes learned by a triggered response command (7) are normally
  1335.    considered to be permanent - that is they do NOT time out unless
  1336.    activated by one of the following events:
  1337.  
  1338.    o  If the circuit manager indicates that a next hop router cannot be
  1339.       contacted, all routes learned from that next hop router should
  1340.       start timing out as if they had (just) been learned from a
  1341.       conventional response command (2).
  1342.  
  1343.  
  1344.  
  1345.  
  1346. Meyer                                                          [Page 24]
  1347.  
  1348. RFC 1582                       Demand RIP                  February 1994
  1349.  
  1350.  
  1351.       Namely each route exists while the database entry timer is
  1352.       running and is advertised on other interfaces as if still
  1353.       present.  The route is then advertised as unreachable while a
  1354.       further hold down timer is allowed to expire, at which point the
  1355.       entry is deleted.
  1356.  
  1357.       If the circuit manager indicates that the next hop router can be
  1358.       contacted while the database entry timer is running, the routes
  1359.       are reinstated as permanent entries.
  1360.  
  1361.       If the database entry timer has expired and the circuit manager
  1362.       indicates that the next hop router is reachable, the routing
  1363.       application MUST issue a triggered request.  The routes will be
  1364.       reinstated on the basis of any triggered response packet(s)
  1365.       received.
  1366.  
  1367.    o  If a triggered response packet is received in which a route is
  1368.       marked unreachable, the hold down timer MUST be started and the
  1369.       entry is advertised as unreachable on other interfaces.  On
  1370.       expiry of the hold down timer the entry is deleted.
  1371.  
  1372.       If a triggered response packet is received in which an existing
  1373.       route is ABSENT, the hold down timer MUST also be started and
  1374.       the entry is advertised as unreachable on other interfaces.  On
  1375.       expiry of the hold down timer the entry is deleted.
  1376.  
  1377.    For IP RIP the hold down timer should always run for 120 seconds, to
  1378.    be consistent with RIP usage on broadcast networks.  The database
  1379.    entry timer should by default run for 180 seconds.  The network can
  1380.    be made more responsive by reducing the database entry timer value.
  1381.    However, making this timer too short can lead to network
  1382.    instabilities.  The duration of the database entry timer allows a
  1383.    period of grace in which contention for network resources can be
  1384.    resolved by the circuit manager.
  1385.  
  1386. 7.2 Retransmission Timer
  1387.  
  1388.    The routing task runs a retransmission timer:
  1389.  
  1390.    o  When a triggered request is sent it will be retransmitted
  1391.       periodically while a triggered response packet is not received.
  1392.  
  1393.    o  When a triggered response is sent a note of the sequence number
  1394.       and fragment number(s) of the routing update is kept.
  1395.  
  1396.       Fragments will be retransmitted at periodic intervals while a
  1397.       triggered acknowledgement packet is not received for the
  1398.       appropriate fragment.
  1399.  
  1400.  
  1401.  
  1402. Meyer                                                          [Page 25]
  1403.  
  1404. RFC 1582                       Demand RIP                  February 1994
  1405.  
  1406.  
  1407.    With call set up time on the WAN being of the order of a second, a
  1408.    value of 5 seconds for the retransmission timer is appropriate.
  1409.  
  1410.    If no response is received after 10 retransmissions, routes via the
  1411.    next hop router are marked as unreachable, the hold down timer MUST
  1412.    be started and the entry is advertised as unreachable on other
  1413.    interfaces.  On expiry of the hold down timer the entry is deleted.
  1414.  
  1415.    The next hop router is then polled using a triggered request packet
  1416.    at 60 second intervals.  If a response is received the routers should
  1417.    exchange routing information using triggered response packets.
  1418.  
  1419.    It may not be desirable to poll indefinitely, since a lack of
  1420.    response (when a circuit is up) is most likely caused by incorrect
  1421.    configuration of the next hop router.  An administrator definable
  1422.    number of polls (5 or greater) should be provided.
  1423.  
  1424.    If the circuit manager indicates that the next hop router is
  1425.    unreachable, the retransmission is suppressed until the circuit
  1426.    manager indicates that the next hop router is reachable once more.
  1427.    Counting of the number of retransmissions continues from where it
  1428.    left off prior to the circuit down indication.
  1429.  
  1430. 7.3 Reassembly Timer
  1431.  
  1432.    When a router receives a triggered response update it MUST
  1433.    acknowledge each fragment.  If the routing update is fragmented over
  1434.    more than one packet, the receiving router MUST store the fragments
  1435.    until ALL fragments are received.
  1436.  
  1437.    On receiving the first fragment a timer should be started.  If all
  1438.    fragments of the routing update are not received within that period
  1439.    they are discarded - and a triggered request is sent back to the
  1440.    originator (with retransmissions if necessary).  The originator MUST
  1441.    then resend ALL triggered response fragments.
  1442.  
  1443.    The reassembly timer should be set to four times the value of the
  1444.    retransmission timer.  With a suggested retransmission timer value of
  1445.    5 seconds, the suggested reassembly timer value SHOULD be 20 seconds.
  1446.  
  1447.    Implementations MAY allow the reassembly timer and retransmission
  1448.    timer to be configurable (in the 1:4 ratio), but interoperability
  1449.    will be compromised on WANs where all participating routers DO NOT
  1450.    support the same values for these timers.
  1451.  
  1452.    Fragments MUST also be discarded if a new fragment with a different
  1453.    sequence number is received.  A triggered request MUST not be sent in
  1454.    this instance.
  1455.  
  1456.  
  1457.  
  1458. Meyer                                                          [Page 26]
  1459.  
  1460. RFC 1582                       Demand RIP                  February 1994
  1461.  
  1462.  
  1463. 8. Implementation Considerations
  1464.  
  1465.    In the implementation described in this memo, it is assumed that
  1466.    there is a close binding between the circuit manager and the routing
  1467.    applications - that they are in some way the same 'program'.  This is
  1468.    not necessarily true of all products which are routers.
  1469.  
  1470.    In particular there are UNIX host implementations in which the
  1471.    routing application is distinct from the kernel, where the circuit
  1472.    manager is likely to be installed.  In such systems it is possible to
  1473.    stop (or crash) the routing applications independently of what is
  1474.    happening in the kernel.
  1475.  
  1476.    Other implementations might have the circuit manager on a separate
  1477.    card which again may give the circuit manager a life of its own.
  1478.  
  1479.    In implementations where the applications and circuit manager have
  1480.    independent lives, a keep-alive mechanism MUST be provided between
  1481.    the applications and the circuit manager, so that if the application
  1482.    or network layer dies and is subsequently re-started they can
  1483.    resynchronize their state tables.
  1484.  
  1485.    Ideally, when an application dies, the circuit manager should close
  1486.    all existing VCs appropriate to the application and make no further
  1487.    outgoing calls and reject incoming calls until the application is
  1488.    running again.
  1489.  
  1490.    If the circuit manager is using some form of encapsulation, several
  1491.    applications may be sharing the same VC.  If this is the case the
  1492.    circuit manager may wish to filter out datagrams for the appropriate
  1493.    network layer if only one of the applications is affected.  But this
  1494.    is not an ideal solution.
  1495.  
  1496.    Conversely if the application believes the circuit manager has died,
  1497.    it should mark all routes via the circuit manager as unreachable and
  1498.    advertise them on other interfaces for the duration of the hold down
  1499.    timer before deleting them.
  1500.  
  1501. 9. Security Considerations
  1502.  
  1503.    Security is provided my a number of aspects:
  1504.  
  1505.    o  The circuit manager is required to be provided with a list of
  1506.       physical addresses to enable it to establish a call to the next
  1507.       hop router on an X.25 SVC or ISDN B-channel.
  1508.  
  1509.       The circuit manager SHOULD only allow incoming calls to be
  1510.       accepted from the same well defined list of routers.
  1511.  
  1512.  
  1513.  
  1514. Meyer                                                          [Page 27]
  1515.  
  1516. RFC 1582                       Demand RIP                  February 1994
  1517.  
  1518.  
  1519.       Elsewhere in the system there will be a set of logical address
  1520.       and physical address tuples to enable the network protocols to
  1521.       run over the correct circuit.  This may be a lookup table, or in
  1522.       some instances there may be an algorithmic conversion between
  1523.       the two addresses.
  1524.  
  1525.    o  The routing (or service advertising) task MUST be provided with a
  1526.       list of logical addresses to which triggered updates are to be
  1527.       sent on the WAN.  The list MAY be a subset of the list of next
  1528.       hop routers maintained by the circuit manager.
  1529.  
  1530.       There MAY also be a separate list of next hop routers to which
  1531.       traditional broadcasts of routing (or service advertising)
  1532.       updates should be sent.  Next hop routers omitted from either
  1533.       list are assumed to be not participating in routing (or service
  1534.       advertising) updates.
  1535.  
  1536.       The list (or lists) doubles as a list of routers from which
  1537.       routing updates are allowed to be received from the WAN.  Any
  1538.       routing information received from a router not in the
  1539.       appropriate list MUST be discarded.
  1540.  
  1541. 10. References
  1542.  
  1543.    [1] Hedrick. C., "Routing Information Protocol", STD 34, RFC 1058,
  1544.        Rutgers University, June 1988.
  1545.  
  1546.    [2] Malkin. G., "RIP Version 2 - Carrying Additional Information",
  1547.        RFC 1388, Xylogics, January 1993.
  1548.  
  1549.    [3] Novell Incorporated., "IPX Router Specification", Version 1.10,
  1550.        October 1992.
  1551.  
  1552.    [4] Xerox Corporation., "Internet Transport Protocols", Xerox System
  1553.        Integration Standard XSIS 028112, December 1981.
  1554.  
  1555.    [5] Malis. A., Robinson. D., and R. Ullmann, "Multiprotocol
  1556.        Interconnect on X.25 and ISDN in the Packet Mode", RFC 1356, BBN
  1557.        Communications, Computervision Systems Integration, Process
  1558.        Software Corporation, August 1992.
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570. Meyer                                                          [Page 28]
  1571.  
  1572. RFC 1582                       Demand RIP                  February 1994
  1573.  
  1574.  
  1575. 11. Author's Address
  1576.  
  1577.        Gerry Meyer
  1578.        Spider Systems
  1579.        Stanwell Street
  1580.        Edinburgh EH6 5NG
  1581.        Scotland, UK
  1582.  
  1583.        Phone: (UK) 31 554 9424
  1584.        Fax:   (UK) 31 554 0649
  1585.        EMail: gerry@spider.co.uk
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.  
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.  
  1598.  
  1599.  
  1600.  
  1601.  
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626. Meyer                                                          [Page 29]
  1627.  
  1628.